package anonymus.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import anonymus.excepcion.DAOExcepcion;
import anonymus.modelo.Evento;
import anonymus.util.ConexionBD;


public class eventoDeportivoDAO extends BaseDAO{

				
	public void insertar(Evento evento) throws DAOExcepcion {
		System.out.println("eventoDeportivoDAO: insertar(Evento evento)");
		String query = "INSERT INTO Evento(nom_evento, premio, tope_equipos, fecha_limite, fecha_ini_evento, fecha_fin_evento, local_codLocal) VALUES (?,?,?,?,?,?,?)";
		Connection con = null;
		PreparedStatement stmt = null;
		try {
			con = ConexionBD.obtenerConexion();
			String query2 = "select local_codLocal, nom_evento from Evento where local_codLocal = ? AND nom_evento = ?";
			stmt = con.prepareStatement(query2);
			stmt.setInt(1, evento.getLocal().getCodLocal());
			stmt.setString(2, evento.getNom_evento());
			ResultSet rs;
			rs = stmt.executeQuery();
			if (rs != null && rs.next()) 
			{
				System.out.println("REGISTRO YA EXISTE");
				throw new DAOExcepcion("REGISTRO YA EXISTE");
			}
			else
			{
				stmt = con.prepareStatement(query);
				stmt.setString(1, evento.getNom_evento());
				stmt.setString(2, evento.getPremio());				
				stmt.setInt(3, evento.getTope_equipos());
				stmt.setString(4,  evento.getFecha_limite());
				stmt.setString(5, evento.getFecha_ini_evento());
				stmt.setString(6,  evento.getFecha_fin_evento());
				stmt.setInt(7, evento.getLocal().getCodLocal());
				
				int i = stmt.executeUpdate();
				if (i != 1) {
					throw new SQLException("Que penita, no se pudo insertar jaaa");
				}
				//ULTIMO CODIGO AUTOGENERADO CREADO
				System.out.println("OK INSERTADO. Obteniendo codigo Autogenerado de Evento");
				int idp = 0;
	            query = "SELECT LAST_INSERT_ID()";
	            stmt = con.prepareStatement(query);
	            rs = stmt.executeQuery();
	            if (rs.next()) {
	            	idp = rs.getInt(1);
	            }
	            evento.setCodEvento(idp);
            
			}
		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
	}

}

